package 单例模式;

/**
 * 双重锁机制
 *  线程安全（不完全安全）
 */
public class Singleton3 {

    private static Singleton3 instance ;

    private Singleton3() {

    }

    public static Singleton3 getInstance() {
        if(instance == null) {
            //只有一个线程获取到锁
            synchronized (Singleton3.class) {
                // 其他线程有可能创建对象，所以这里再判断一下
                if (instance == null) {
                    instance = new Singleton3();
                }
            }
        }
        return instance;
    }
}
